<?php

/**
 * 判断是否是微信浏览器
 * */
// function is_weixin(){
//     if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) {
//         return true;
//     }
//     return false;
// }

/**
 * 生成订单号
 * @param string $pre 前缀
 * @return string
 */
function createOrder($pre='') {
    return $pre . date('YmdHis') . mt_rand(1000, 9999);
}

/**
 * 求两个已知经纬度之间的距离,单位为米
 *
 * @param $lng1  ,$lng2 经度
 * @param $lat1  ,$lat2 纬度
 * @return float 距离，单位米
 */
function getDistance1($lng1, $lat1, $lng2, $lat2) {
    // 将角度转为狐度
//    $radLat1 = deg2rad($lat1); //deg2rad()函数将角度转换为弧度
//    $radLat2 = deg2rad($lat2);
//    $radLng1 = deg2rad($lng1);
//    $radLng2 = deg2rad($lng2);
//    $a = $radLat1 - $radLat2;
//    $b = $radLng1 - $radLng2;
//    $s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2))) * 6378.137 * 1000;
//    return $s;

    $url = sprintf('http://api.map.baidu.com/telematics/v3/distance?waypoints=%s,%s;%s,%s&ak=%s&output=json', $lng1, $lat1, $lng2, $lat2, config('baidu_map_ak'));
    $list = file_get_contents($url);
    $data = json_decode($list, true);
    return $data['results'][0];

}

/**
 * @param $lng1 经度1
 * @param $lat1 纬度1
 * @param $lng2 经度2
 * @param $lat2 纬度2
 * @param int $unit单位 1米 2千米
 * @param int $decimal 保留几位小数
 * @return float
 */
function getDistance($lng1, $lat1, $lng2, $lat2, $unit=1, $decimal=2) {
    $EARTH_RADIUS = 6370.996; // 地球半径系数
    $PI = pi();

    $radLat1 = $lat1 * $PI / 180.0;
    $radLat2 = $lat2 * $PI / 180.0;

    $radLng1 = $lng1 * $PI / 180.0;
    $radLng2 = $lng2 * $PI / 180.0;

    $a = $radLat1 - $radLat2;
    $b = $radLng1 - $radLng2;

    $distance = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2)));
    $distance = $distance * $EARTH_RADIUS * 1000;

    if($unit==2){
        $distance = $distance / 1000;
    }

    return round($distance, $decimal);
}